/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package servlet;

import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import viviendas.Conexion;

/**
 *
 * @author x
 */
public class Viviendas extends Conexion {

    /**
     * Processes requests for both HTTP
     * <code>GET</code> and
     * <code>POST</code> methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        HttpSession session = request.getSession();
        String irA = "viviendas.jsp";
        try {
            if (request.getParameter("id_vivienda") != null) {
                String accion = request.getParameter("accion");
                int id_vivienda = Integer.parseInt(request.getParameter("id_vivienda"));
                String descripcion = request.getParameter("descripcion_vivienda");
                String precio = request.getParameter("precio");
                String ubicacion = request.getParameter("ubicacion_vivienda");
                String requisitos_min = request.getParameter("requisitos_min");
                if (Integer.valueOf(request.getParameter("id_tipo_vivienda")) < 1) {
                    setErrorMessage("Seleccione un tipo de vivienda");
                    System.out.println(1/0);
                }
                int id_tipo_vivienda = Integer.valueOf(request.getParameter("id_tipo_vivienda"));
                if (Integer.valueOf(request.getParameter("id_proyecto")) < 1) {
                    setErrorMessage("Seleccione un proyecto");
                    System.out.println(1/0);
                }
                int id_proyecto = Integer.valueOf(request.getParameter("id_proyecto"));
                if (Integer.valueOf(request.getParameter("id_proyecto")) < 1) {
                    setErrorMessage("Seleccione un usuario");
                    System.out.println(1/0);
                }
                int id_usuario = Integer.valueOf(request.getParameter("id_usuario"));
                if (accion.equalsIgnoreCase("insertar")) {
                    irA = "imagenes.jsp?id_vivienda=" + save("insert into viviendas (descripcion_vivienda, precio, ubicacion_vivienda, requisitos_min, id_tipo_vivienda, id_proyecto, id_usuario) values("
                            + " '" + descripcion + "'"
                            + ", " + precio + ""
                            + ", '" + ubicacion + "'"
                            + ", '" + requisitos_min + "'"
                            + ", " + id_tipo_vivienda + ""
                            + ", " + id_proyecto + ""
                            + ", " + id_usuario + ""
                            + ")");
                    setSuccessMessage("Vivienda creada exitosamente.");
                } else if (accion.equalsIgnoreCase("actualizar")) {
                    update("update viviendas set "
                            + " descripcion_vivienda = '" + descripcion + "'"
                            + ", precio = " + precio + ""
                            + ", ubicacion_vivienda = '" + ubicacion + "'"
                            + ", requisitos_min = '" + requisitos_min + "'"
                            + ", id_tipo_vivienda = " + id_tipo_vivienda + ""
                            + ", id_proyecto = " + id_proyecto + ""
                            + ", id_usuario = " + id_usuario + ""
                            + " where id_vivienda = " + id_vivienda);
                    setSuccessMessage("Vivienda actualizada exitosamente.");
                } else if (accion.equalsIgnoreCase("borrar")) {
                    delete("delete from viviendas where id_vivienda = " + id_vivienda);
                    setSuccessMessage("Vivienda eliminada exitosamente.");
                }
            }
        } catch (SQLException exSQL) {
            if (request.getParameter("accion").equalsIgnoreCase("borrar")) {
                setErrorMessage("Error. No puede eliminar un registro padre.");
            } else {
                setErrorMessage("Error. Hubo un problema en al ingresar datos.");
            }
            System.out.println("Error " + exSQL.getMessage());
        } catch (Exception ex) {
            System.out.println("Error en mantenimiento viviendas " + ex.getMessage());
        } finally {
            session.setAttribute("successMessage", getSuccessMessage());
            session.setAttribute("errorMessage", getErrorMessage());
            setSuccessMessage("");
            setErrorMessage("");
            response.sendRedirect(irA);
        }
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP
     * <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP
     * <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}
